<?php
namespace App\Common;
use Symfony\Component\HttpKernel\EventListener\FragmentListener;

/**
 * 生成编号格式配置类
 *
 * @author WangBin
 * @date 2021-08-17
 * @package App\Http\Common
 */
class BnFormatConfig
{
    // 订单编号
    const ORDER_BN_KEY = 'ORDER_BN';
    // 京东订单编号-生产环境
    const ORDER_BN_FORMAT = ['prefix' => 'JD','pad' => 6];

    // 订单编号
    const COUPON_ORDER_BN_KEY = 'COUPON_ORDER_BN';
    const COUPON_ORDER_BN_FORMAT = ['prefix' => 'E','pad' => 6]; //prod:6

    // 京东订单编号-测试环境
    const ORDER_TEST_BN_KEY = 'ORDER_TEST_BN';
    // 京东订单编号-测试环境
    const ORDER_TEST_BN_FORMAT = ['prefix' => 'JD','pad' => 5];

    // 个人试用申请编号
    const TRIAL_PERSONAL_BN_KEY = 'TRIAL_PERSONAL_BN';
    const TRIAL_PERSONAL_BN_FORMAT = ['prefix' => 'GRSY','pad' => 5];

    // 企业试用申请编号
    const TRIAL_COMPANY_BN_KEY = 'TRIAL_COMPANYL_BN';
    const TRIAL_COMPANY_BN_FORMAT = ['prefix' => 'QYSQ','pad' => 5];

    // 企业编号code
    const ENTERPRISE_BN_KEY = 'ENTERPRISE_BN';
    const ENTERPRISE_BN_FORMAT = ['prefix' => 'E','pad' => 5];

    // 发票code
    const INVOICE_BN_KEY = 'INVOICE_NEW_BN';
    const INVOICE_BN_FORMAT = ['prefix' => 'IN','pad' => 5];

    // 导入任务编号
    const IMPORT_TASK_BN_KEY = 'IMPORT_TASK_BN';
    const IMPORT_TASK_BN_FORMAT = ['prefix' => 'IMP', 'pad' => 4];

    // 导入任务明细编号
    const IMPORT_TASK_ITEM_BN_KEY = 'IMPORT_TASK_ITEM_BN';
    const IMPORT_TASK_ITEM_BN_FORMAT = ['prefix' => 'IMP', 'pad' => 7];

    // 导出任务编号
    const EXPORT_TASK_BN_KEY = 'EXPORT_TASK_BN';
    const EXPORT_TASK_BN_FORMAT = ['prefix' => 'EXP', 'pad' => 4];

    // 发送手机短信任务编号
    const SMS_SEND_TASK_BN_KEY = 'SMS_SEND_TASK_BN';
    const SMS_SEND_TASK_BN_FORMAT = ['prefix' => 'SMS', 'pad' => 6];

    // 导入任务申请审核编号
    const IMPORT_TASK_CHECK_BN_KEY = 'IMPORT_TASK_CHECK_BN';
    const IMPORT_TASK_CHECK_BN_FORMAT = ['prefix' => 'IMA', 'pad' => 6];

    // 客户工单编号
    const CUSTOMER_TICKET_BN_KEY = 'CUSTOMER_TICKET_BN';
    const CUSTOMER_TICKET_BN_FORMAT = ['prefix' => 'T', 'pad' => 4];

    // 发发权益发放编号
    const WELFARE_BN_KEY = 'WELFARE_BN';
    const WELFARE_BN_FORMAT = ['prefix' => 'W', 'pad' => 6];

    // 合同编号code
    const CONTRACT_BN_KEY = 'CONTRACT_BN';
    const CONTRACT_BN_FORMAT = ['prefix' => 'C','pad' => 5];

    // 资金编号code
    const CONTRACT_FUND_BN_KEY = 'CONTRACT_FUND_BN';
    const CONTRACT_FUND_BN_FORMAT = ['prefix' => 'F','pad' => 5];

    // 支付单编号
    const ORDER_PAY_BN_KEY = 'ORDER_PAY_BN';
    const ORDER_PAY_BN_FORMAT = ['prefix' => '20','pad' => 5];

    // 退款单单编号
    const ORDER_REFUND_BN_KEY = 'ORDER_REFUND_BN';
    const ORDER_REFUND_BN_FORMAT = ['prefix' => '30','pad' => 5];

    // 发票销货单编号
    const INVOICE_BILL_BN_KEY = 'INVOICE_BILL_BN';
    const INVOICE_BILL_BN_FORMAT = ['prefix' => '40','pad' => 5];

    // 修改密码-邮件code码
    const CHANGPASS_CODE_BN_KEY = 'CHANGPASS_CODE_BN';
    const CHANGPASS_CODE_BN__FORMAT = ['prefix' => '0','pad' => 4];

    // 商城编号
    const MALL_BN_KEY = 'MALL_BN';
    const MALL_BN_FORMAT = ['prefix' => 'M','pad' => 5];
    // 账户申请编号
    const ACCOUNT_VIP_BN_KEY = 'ACCOUNT_VIP_BN';
    const ACCOUNT_VIP_BN_FORMAT = ['prefix' => 'A','pad' => 5];
    // 资金申请编号
    const AMOUNT_APPLY_BN_KEY = 'AMOUNT_APPLY_BN';
    const AMOUNT_APPLY_BN_FORMAT = ['prefix' => 'A','pad' => 5];
    // 还款账单申请编号
    const REPAYMENT_BILL_BN_KEY = 'REPAYMENT_BILL_BN';
    const REPAYMENT_BILL_BN_FORMAT = ['prefix' => 'B','pad' => 5];

    // 应用分类编号
    const INVOICE_CATEGORY_BN_KEY = 'INVOICE_CATEGORY_BN';
    const INVOICE_CATEGORY_BN_FORMAT = ['prefix' => 'AID','pad' => 5];

    // 企业产品账单编号
    const ENTER_MALL_BILL_BN_KEY = 'ENTER_MALL_BILL_BN';
    const ENTER_MALL_BILL_BN_FORMAT = ['prefix' => 'BI','pad' => 5];

    // 企业额度分配请求任务ID
    const ENTER_QUOTAALLOCATION_TASKID = 'QUOTAALLOCATION_TASKID';
    const ENTER_QUOTAALLOCATION_TASKID_FORMAT = ['prefix' => 'BI','pad' => 5];

    // 企业员工产品账户流水交易订单
    const ENTER_QUOTAALLOCATION_ORDERNUM = 'QUOTAALLOCATION_ORDERNUM';
    const ENTER_QUOTAALLOCATION_ORDERNUM_FORMAT = ['prefix' => 'BI','pad' => 5];

    // 企业员工额度回收任务ID
    const ENTER_WITHDRAW_AMOUNT_TASKID = 'WITHDRAW_AMOUNT_TASKID';
    const ENTER_WITHDRAW_AMOUNT_TASKID_FORMAT = ['prefix' => 'BI','pad' => 5];

    // 清单编号
    const INVENTORY_BN_KEY = 'INVENTORY_BN';
    const INVENTORY_BN_FORMAT = ['prefix' => '1','pad' => 5];

    // 实物商品基础订单
    const ENTITY_ORDER_BN_KEY = 'ENTITY_ORDER_BN';
    const ENTITY_ORDER_BN_FORMAT = ['prefix' => 'O','pad' => 5];
    // 实物商品基础订单
    const ENTITY_GOODS_ORDER_BN_KEY = 'ENTITY_GOODS_ORDER_BN';
    const ENTITY_GOODS_ORDER_BN_FORMAT = ['prefix' => 'EO','pad' => 5];
    // 实物商品基础订单
    const ENTITY_FEE_ORDER_BN_KEY = 'ENTITY_FEE_ORDER_BN';
    const ENTITY_FEE_ORDER_BN_FORMAT = ['prefix' => 'FO','pad' => 5];

    // 订单编号
    const CARD_ORDER_BN_KEY = 'CARD_ORDER_BN';
    const CARD_ORDER_BN_FORMAT = ['prefix' => 'NUM','pad' => 10];

    // 电子卡券订单支付订单号
    const CARD_GOODS_PAY_BN_KEY = 'CARD_GOODS_PAY_BN';
    const CARD_GOODS_PAY_BN_FORMAT = ['prefix' => 'PAY','pad' => 10];

    // 电子卡券商品订单编号
    const CARD_GOODS_BN_KEY = 'CARD_GOODS_BN';
    const CARD_GOODS_BN_FORMAT = ['prefix' => 'GOODS','pad' => 10];

    // 电子卡券商品服务费订单编号
    const CARD_GOODS_SERVICE_BN_KEY = 'CARD_GOODS_SERVICE_BN';
    const CARD_GOODS_SERVICE_BN_FORMAT = ['prefix' => 'SERVICE','pad' => 10];

    // 充值缴费类订单编号
    const RECHARGE_ORDER_BN_KEY = 'RECHARGE_ORDER_BN';
    const RECHARGE_ORDER_BN_FORMAT = ['prefix' => 'IBS','pad' => 10];

    // 充值缴费类订单编号
    const CARD_GOODS_REFUND_BN_KEY = 'CARD_GOODS_REFUND_BN';
    const CARD_GOODS_REFUND_BN_FORMAT = ['prefix' => 'CARDREFUND','pad' => 10];


    // 京东VOP微信小程序用户注册发送验证码
    const WECHAT_MEMBER_REGISTER = 'WECHAT_MEMBER_REGISTER';
    const WECHAT_MEMBER_REGISTER_BN_FORMAT = ['prefix' => 'O','pad' => 6];

    // 编号配置集合
    const BN_FORMAT_MAP = [
        self::WECHAT_MEMBER_REGISTER=>self::WECHAT_MEMBER_REGISTER_BN_FORMAT,
        self::ORDER_BN_KEY => self::ORDER_BN_FORMAT,
        self::COUPON_ORDER_BN_KEY => self::COUPON_ORDER_BN_FORMAT,
        self::TRIAL_COMPANY_BN_KEY => self::TRIAL_COMPANY_BN_FORMAT,
        self::TRIAL_PERSONAL_BN_KEY => self::TRIAL_PERSONAL_BN_FORMAT,
        self::ENTERPRISE_BN_KEY => self::ENTERPRISE_BN_FORMAT,
        self::IMPORT_TASK_BN_KEY => self::IMPORT_TASK_BN_FORMAT,
        self::IMPORT_TASK_ITEM_BN_KEY => self::IMPORT_TASK_ITEM_BN_FORMAT,
        self::EXPORT_TASK_BN_KEY => self::EXPORT_TASK_BN_FORMAT,
        self::SMS_SEND_TASK_BN_KEY => self::SMS_SEND_TASK_BN_FORMAT,
        self::IMPORT_TASK_CHECK_BN_KEY => self::IMPORT_TASK_CHECK_BN_FORMAT,
        self::CUSTOMER_TICKET_BN_KEY => self::CUSTOMER_TICKET_BN_FORMAT,
        self::WELFARE_BN_KEY => self::WELFARE_BN_FORMAT,
        self::CONTRACT_BN_KEY => self::CONTRACT_BN_FORMAT,
        self::CONTRACT_FUND_BN_KEY => self::CONTRACT_FUND_BN_FORMAT,
        self::ORDER_PAY_BN_KEY => self::ORDER_PAY_BN_FORMAT,
        self::ORDER_REFUND_BN_KEY => self::ORDER_REFUND_BN_FORMAT,
        self::INVOICE_BN_KEY => self::INVOICE_BN_FORMAT,
        self::INVOICE_BILL_BN_KEY => self::INVOICE_BILL_BN_FORMAT,
        self::MALL_BN_KEY=>self::MALL_BN_FORMAT,
        self::ACCOUNT_VIP_BN_KEY=>self::ACCOUNT_VIP_BN_FORMAT,
        self::AMOUNT_APPLY_BN_KEY=>self::AMOUNT_APPLY_BN_FORMAT,
        self::REPAYMENT_BILL_BN_KEY=>self::REPAYMENT_BILL_BN_FORMAT,
        self::INVOICE_CATEGORY_BN_KEY=>self::INVOICE_CATEGORY_BN_FORMAT,
        self::ENTER_MALL_BILL_BN_KEY=>self::ENTER_MALL_BILL_BN_FORMAT,
        self::ENTER_QUOTAALLOCATION_TASKID=>self::ENTER_QUOTAALLOCATION_TASKID_FORMAT,
        self::ENTER_QUOTAALLOCATION_ORDERNUM=>self::ENTER_QUOTAALLOCATION_ORDERNUM_FORMAT,
        self::ENTER_WITHDRAW_AMOUNT_TASKID=>self::ENTER_WITHDRAW_AMOUNT_TASKID_FORMAT,
        self::INVENTORY_BN_KEY=>self::INVENTORY_BN_FORMAT,
        self::ENTITY_ORDER_BN_KEY=>self::ENTITY_ORDER_BN_FORMAT,
        self::ENTITY_GOODS_ORDER_BN_KEY=>self::ENTITY_GOODS_ORDER_BN_FORMAT,
        self::ENTITY_FEE_ORDER_BN_KEY=>self::ENTITY_FEE_ORDER_BN_FORMAT,
        self::CARD_ORDER_BN_KEY=>self::CARD_ORDER_BN_FORMAT,
        self::CARD_GOODS_BN_KEY=>self::CARD_GOODS_BN_FORMAT,
        self::CARD_GOODS_SERVICE_BN_KEY=>self::CARD_GOODS_SERVICE_BN_FORMAT,
        self::CARD_GOODS_PAY_BN_KEY=>self::CARD_GOODS_PAY_BN_FORMAT,
        self::RECHARGE_ORDER_BN_KEY=>self::RECHARGE_ORDER_BN_FORMAT,
        self::CARD_GOODS_REFUND_BN_KEY=>self::CARD_GOODS_REFUND_BN_FORMAT,
        self::CHANGPASS_CODE_BN_KEY=>self::CHANGPASS_CODE_BN__FORMAT,
        self::ORDER_TEST_BN_KEY=>self::ORDER_TEST_BN_FORMAT,
    ];
}
